﻿'
' Boogaloo® - http://www.mindfly.com
' Copyright (c) 2008
' by Mindfly, Inc.
'
' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
' documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
' to permit persons to whom the Software is furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in all copies or substantial portions 
' of the Software.
'
' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
' INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
' SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
' SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
' WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
' THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Imports System.Xml
Imports Boogaloo.Core.UI
Imports Boogaloo.Core.BLL

Namespace UI.Controls

    Public Class LabelHiddenDropDownBox
        Inherits LabelHiddenControlBase
        Implements INamingContainer

        Public Event Click As EventHandler

        Protected Overrides Sub CreateChildControls()
            MyBase.CreateChildControls()

            _validation_group = Me.ClientID

            _dropdownlist = New DropDownList
            _dropdownlist.ID = "ddl"

            _label = New Label
            _label.Text = "Label for dropdownlist"
            _label.AssociatedControlID = _dropdownlist.ID
            Controls.Add(_label)

            Controls.Add(_dropdownlist)

            _linkbutton = New LinkButton
            _linkbutton.Text = "Save"
            _linkbutton.CommandName = "Click"
            _linkbutton.ValidationGroup = _validation_group
            _linkbutton.CssClass = "save"
            Controls.Add(_linkbutton)

            _hyperlink = New HyperLink
            _hyperlink.Text = "Cancel"
            _hyperlink.NavigateUrl = HttpContext.Current.Request.Url.PathAndQuery
            _hyperlink.CssClass = "cancel"
            Controls.Add(_hyperlink)

            If String.IsNullOrEmpty(_InitialValue) Then _validate = False
            _requiredfieldvalidator = New RequiredFieldValidator
            _requiredfieldvalidator.ControlToValidate = _dropdownlist.ID
            _requiredfieldvalidator.InitialValue = _InitialValue
            _requiredfieldvalidator.Display = ValidatorDisplay.Dynamic
            _requiredfieldvalidator.Enabled = _validate
            _requiredfieldvalidator.Visible = _validate
            _requiredfieldvalidator.ValidationGroup = _validation_group
            Controls.Add(_requiredfieldvalidator)

        End Sub

        Protected Overrides Function OnBubbleEvent(ByVal source As Object, ByVal e As System.EventArgs) As Boolean

            Dim handled As Boolean = False
            If TypeOf e Is CommandEventArgs Then
                Dim ce As CommandEventArgs = CType(e, CommandEventArgs)
                If ce.CommandName = "Click" Then
                    OnClick(ce)
                    handled = True
                End If

            End If
            Return handled

        End Function

        Public Overrides Sub DataBind()
            _dropdownlist.DataBind()
        End Sub

        Public Sub Insert(ByVal index As Integer, ByVal Text As String, ByVal Value As String)
            _dropdownlist.Items.Insert(index, New ListItem(Text, Value))
        End Sub

        Protected Overridable Sub OnClick(ByVal e As EventArgs)
            RaiseEvent Click(Me, e)
        End Sub



#Region "Properties"


        Public Property dropdownlist_cssclass() As String
            Get
                EnsureChildControls()
                Return _dropdownlist.CssClass
            End Get
            Set(ByVal value As String)
                EnsureChildControls()
                _dropdownlist.CssClass = value
            End Set
        End Property

        Private _dropdownlist As DropDownList
        Public Property dropdownlist() As DropDownList
            Get
                EnsureChildControls()
                Return _dropdownlist
            End Get
            Set(ByVal value As DropDownList)
                EnsureChildControls()
                _dropdownlist = value
            End Set
        End Property


        Private _InitialValue As String
        Public Property InitialValue() As String
            Get
                Return _InitialValue
            End Get
            Set(ByVal value As String)
                _InitialValue = value
            End Set
        End Property


#End Region

    End Class

End Namespace